/**
 * @author Burcak Otlu Saritas
 *
 * 
 */

package intervaltree;


public class IntervalTreeNode{
	
	int max;
	int low;
	int high;
	
	char color;
	IntervalTreeNode left;
	IntervalTreeNode right;
	IntervalTreeNode parent;
	
//	Just for search UCSC RefSeq Gene output
	char strand;
	String chromName;
	String  refSeqGeneName;
	Integer geneEntrezId;
	String intervalName;
	String geneHugoSymbol;
	

	
//	Just for search ENCODE Tfbs  and Histone output
	String tfbsorHistoneName;
	String cellLineName;
	String fileName;
	
	
	
	public char getStrand() {
		return strand;
	}


	public void setStrand(char strand) {
		this.strand = strand;
	}


	public Integer getGeneEntrezId() {
		return geneEntrezId;
	}
	
	
	public void setGeneEntrezId(Integer geneEntrezId) {
		this.geneEntrezId = geneEntrezId;
	}
	
	
	
	public int getMax() {
		return max;
	}
	public void setMax(int max) {
		this.max = max;
	}
	
	public int getLow() {
		return low;
	}
	public void setLow(int low) {
		this.low = low;
	}
	public int getHigh() {
		return high;
	}
	public void setHigh(int high) {
		this.high = high;
	}
	public char getColor() {
		return color;
	}
	public void setColor(char color) {
		this.color = color;
	}
	public IntervalTreeNode getLeft() {
		return left;
	}
	public void setLeft(IntervalTreeNode left) {
		this.left = left;
	}
	public IntervalTreeNode getRight() {
		return right;
	}
	public void setRight(IntervalTreeNode right) {
		this.right = right;
	}
	public IntervalTreeNode getParent() {
		return parent;
	}
	public void setParent(IntervalTreeNode parent) {
		this.parent = parent;
	}
	
	public IntervalTreeNode(int low, int high) {
		super();
		this.low = low;
		this.high = high;
	}
	
	
	public String getChromName() {
		return chromName;
	}


	public void setChromName(String chromName) {
		this.chromName = chromName;
	}


	public String getRefSeqGeneName() {
		return refSeqGeneName;
	}


	public void setRefSeqGeneName(String refSeqGeneName) {
		this.refSeqGeneName = refSeqGeneName;
	}


	public String getIntervalName() {
		return intervalName;
	}


	public void setIntervalName(String intervalName) {
		this.intervalName = intervalName;
	}


	public String getGeneHugoSymbol() {
		return geneHugoSymbol;
	}


	public void setGeneHugoSymbol(String geneHugoSymbol) {
		this.geneHugoSymbol = geneHugoSymbol;
	}


	public String getTfbsorHistoneName() {
		return tfbsorHistoneName;
	}


	public void setTfbsorHistoneName(String tfbsorHistoneName) {
		this.tfbsorHistoneName = tfbsorHistoneName;
	}


	public String getCellLineName() {
		return cellLineName;
	}


	public void setCellLineName(String cellLineName) {
		this.cellLineName = cellLineName;
	}


	public String getFileName() {
		return fileName;
	}


	public void setFileName(String fileName) {
		this.fileName = fileName;
	}


	//For Ucsc gene
	public IntervalTreeNode(String chromName, int low, int high, 
			String refSeqGeneName, Integer geneEntrezId, String intervalName,
			String geneHugoSymbol) {
		super();
		this.low = low;
		this.high = high;
		this.chromName = chromName;
		this.refSeqGeneName = refSeqGeneName;
		this.geneEntrezId = geneEntrezId;
		this.intervalName = intervalName;
		this.geneHugoSymbol = geneHugoSymbol;
	}

	
	//For Ucsc gene with strand attribute
	public IntervalTreeNode(String chromName, int low, int high, 
			String refSeqGeneName, Integer geneEntrezId, String intervalName,char strand,
			String geneHugoSymbol) {
		super();
		this.low = low;
		this.high = high;
		this.chromName = chromName;
		this.refSeqGeneName = refSeqGeneName;
		this.geneEntrezId = geneEntrezId;
		this.intervalName = intervalName;
		this.strand = strand;
		this.geneHugoSymbol = geneHugoSymbol;
	}
	

	//For Encode tfbs and histone
	public IntervalTreeNode(String chromName,int low, int high,  String tfbsorHistoneName,
			String cellLineName, String fileName) {
			super();
			this.low = low;
			this.high = high;
			this.chromName = chromName;
			this.tfbsorHistoneName= tfbsorHistoneName;
			this.cellLineName = cellLineName;
			this.fileName = fileName;
	}
	
	
	
//For Encode dnase
	public IntervalTreeNode(String chromName,int low, int high,String cellLineName, String fileName) {
		super();
		this.low = low;
		this.high = high;
		this.chromName = chromName;
		this.cellLineName = cellLineName;
		this.fileName = fileName;
}	

	

}
